<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache");
header("Pragma: no-cache");
require_once 'models/OSModel.php';
require_once 'lib/class/class.colorBlocks.php';
/**
* @package TGV OS - Sistema de gerenciamento de OS
* @author Studio programaR
* @version 0.1.0
* 
* Camada - Controllers
* Diretorio Pai - controllers 
* 
* Controlador que dever ser chamado quando nao for
* especificado nenhum outro
*/
class OSController
{
	/**
	* Listar ultimas OS cadastradas no sistema
	*/
	public function listarAction(){
		// Exibir tela de OS
		session_start();
		if(!isset($_SESSION['nome'])){
			Application::redirect('../user/login/');
		}
		$o_view = new View('views/os/listarOS.phtml');
		$parametros = $_SESSION;
		$bdOS = new OSModel;
		$order = (isset($_GET["order"])) ? $_GET["order"] : 'no_os';
		$orderType = (@$_GET["tp"]==2) ? 'DESC' : 'ASC';
		if(isset($_GET["c"]) && isset($_GET["v"])){
			$c = array($_GET["c"]);
			$v = array(trim($_GET["v"]));
		}else{
			$c = $v = '';
		}
		$lista= $bdOS->listar('1000', $c, $v, $order, $orderType);
		$lista1= $bdOS->getLista('tos_cliente');
		array_push($parametros, $lista1);
		array_push($parametros, $lista); 
		$o_view->setParams($parametros);
		//Imprimindo codigo HTML
		$o_view->showContents();
	}
	/**
	* Listar ultimas OS cadastradas no sistema via AJAX
	*/
	public function listarAjaxAction(){
		// Exibir tela de OS
		session_start();
		if(!isset($_SESSION['nome'])){
			Application::redirect('../user/login/');
		}
		$o_view = new View('views/os/listarAjaxOS.phtml');
		$parametros = $_SESSION;
		$bdOS = new OSModel;
		$limiteOS = (isset($_REQUEST["limite"])) ? $_REQUEST["limite"] : 3;
		$lista= $bdOS->listar($limiteOS, '', '', 'id_os', 'desc');
		array_push($parametros, $lista); 
		$o_view->setParams($parametros);
		//Imprimindo codigo HTML
		$o_view->showContents();
	}
	public function inserirOSAction(){
		// Exibir formulario de cadastro
		session_start();
		if(!isset($_SESSION['nome'])){
			Application::redirect('../user/login/');
		}
		$bdOS = new OSModel;
		if($_REQUEST["acao"] == "inserir"){
			require("lib/class/class.usaData.php");
			$dt = new usaData();
			$campos = $_REQUEST;
			$required = $_REQUEST;
			unset($required["dt_termino"]);
			$erros = 0;
			$msg = '';
			// Verifica se todos os campos obrigatorios foram preenchidos.
			foreach($required as $cpo){
				if($cpo == ''){
					$erros++;
				}
			}
			if($erros){
				$msg .='Preencha todos os campos<br />';
			}
			// Verifica as datas
			$abOS = explode(" ", $campos["abertura_os"]);
			$dt_abertura = $dt->converterData($abOS[0]);
			if(strrpos($campos["dt_inicio"], ' ')){
				$inOS = explode(" ", $campos["dt_inicio"]);
				$campos["dt_inicio"] = $dt->converterData($inOS[0]);
			}
			if(isset($campos["dt_termino"]) && strrpos($campos["dt_termino"], ' ')){
				$terOS = explode(" ", $campos["dt_termino"]);
				$campos["dt_termino"] = $dt->converterData($terOS[0]);
			}
			$hr_abertura = $abOS[1];
			$dtInicioBR = $dt->converterData($campos["dt_inicio"]);
			$dtTerminoBR = ($campos["dt_termino"] == '') ? $dtInicioBR : $dt->converterData($campos["dt_termino"]);
			if($dt->diferencaDias($dtTerminoBR, $dtInicioBR)< 0){
				$erros++;
				$msg .='A data de início não pode ser menor que a de término<br />';
			}
			if(!$erros){
				//Crio os arrays com as informacoes a serem inseridas na tabela de OS
				$valoresArray = array($campos["no_os"], $campos["nu_contrato_os"], $dt_abertura, $hr_abertura, 
									  $campos["dt_inicio"], $campos["dt_termino"],$campos["vl_os"],
									  $campos["fl_aditivo"], $campos["id_solicitante"], $campos["id_cliente"],
									  $_SESSION['id_user'], $campos["nu_horas_planejadas"], 
									  $campos["nu_horas_executadas"]);
				$bdOS-> insereOS($valoresArray);
				echo "<center><p>&nbsp;</p> A OS foi inserida com sucesso.<p>&nbsp;</p><a class='btn_laranja'
				 href='./OS/inserirOS' title='Inserir uma nova OS'>Inserir outra OS</a></center>";
			}else{
				echo "<center><p>&nbsp;</p>" . $msg . "<p>&nbsp;</p><a class='btn_laranja'
				 href='./OS/inserirOS' title='Inserir uma nova OS'>Tentar novamente</a></center>";
			}
		}else{
			$o_view = new View('views/os/inserirOS.phtml');
			$parametros = $_SESSION;
			$lista1= $bdOS->getLista('tos_solicitante');
			$lista2= $bdOS->getLista('tos_cliente');
			array_push($parametros, $lista1);
			array_push($parametros, $lista2);  
			$o_view->setParams($parametros);
			//Imprimindo codigo HTML
			$o_view->showContents();
		}
	}
	/**
	* Listar ultimas OS cadastradas no sistema
	*/
	public function mostrarOSAction(){
		// Exibir tela de OS
		session_start();
		if(!isset($_SESSION['nome'])){
			Application::redirect('../user/login/');
		}
		$o_view = new View('views/os/mostrarOS.phtml');
		$parametros = $_SESSION;
		$bdOS = new OSModel;
		$idOS = (isset($_REQUEST["id"])) ? $_REQUEST["id"] : null;
		$lista= $bdOS->mostrarOS($idOS);
		$lista1= $bdOS->getLista('tos_solicitante');
		$lista2= $bdOS->getLista('tos_cliente');
		$parametros["sl"] = $lista1;
		$parametros["cl"] = $lista2;
		array_push($parametros, $lista); 
		$o_view->setParams($parametros);
		//Imprimindo codigo HTML
		$o_view->showContents();
	}
	public function alterarOSAction(){
		// Exibir tela de OS;
		$bdOS = new OSModel;
		require("lib/class/class.usaData.php");
		$dt = new usaData();
		$v = $_REQUEST["valor"];
		$c = $_REQUEST["campo"];
		if($v != ''){
			$lista= $bdOS->alteraOS($c, $v, $_REQUEST["idOS"]);
			if($c == 'dt_inicio_os' || $c == 'dt_termino_os' || $c == 'dt_abertura_os'){
				$v = $dt->converterData($v);
			}
			echo $v;//$_REQUEST["valor"];
		}else{
			echo "<span style='color:#F00; font-weight:bold; font-size:10px'>Erro ao alterar</span>";
		}
	}
	public function deletarAction(){
		$bdOS = new OSModel;
		$v = $_REQUEST["id"];
		$lista= $bdOS->deletaOS($v);
		echo ($lista) ? "<center><p>&nbsp;</p>A OS foi excluida com sucesso.<p>&nbsp;</p>
		<a class='btn_laranja externo' href='".$_SERVER['HTTP_REFERER']."'>Atualizar</a></center>" : 
		"<center>Erro ao deletar a OS <p>&nbsp;</p> 
		<a class='btn_laranja' href='".$_SERVER['HTTP_REFERER']."'>Atualizar</a></center>";
	}
}
?>